<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                >

    <f:subview id="cadastroUsuarioEmbutido" rendered="#{fluxoExibicaoAmdnistracao.exibirCadastroUsuario}">

        <h:panelGrid columns="1" id="embCadUser" width="850" styleClass="center">
            <h:panelGroup id="formCadUser" styleClass="esquerda">
                <h:form id="cadUserForm" styleClass="formularioFundo">
                    <h:panelGrid columns="3" id="pai" styleClass="bvb-font">
                        <f:facet name="header">
                            <h:outputText value="#{msg.cadUserPanelGridTitle}" styleClass="formularioTitle"/>
                        </f:facet>

                        <h:outputLabel value="#{msg.nome}:" id="labelNome" title="#{msg.titleNomeCadUser}"/>
                        <p:inputText value="#{admUsuario.usuarioCadastro.nome}" id="userNameCad" required="true"
                                     requiredMessage="#{msg.campoObrigatorio}" title="#{msg.titleNomeCadUser}" label="#{msg.nome}"
                                     maxlength="30" size="50">
                            <f:validateLength minimum="3" maximum="30"/>
                        </p:inputText>
                        <p:message for="userNameCad"/>

                        <h:outputLabel value="#{msg.sobreNome}:" id="labelSobreNome" title="#{msg.titleSobreNomeCadUser}"/>
                        <p:inputText value="#{admUsuario.usuarioCadastro.sobreNome}" id="userSobreNameCad" required="true"
                                     requiredMessage="#{msg.campoObrigatorio}" title="#{msg.titleSobreNomeCadUser}" label="#{msg.sobreNome}"
                                     maxlength="30" size="50">
                            <f:validateLength minimum="3" maximum="30"/>
                        </p:inputText>
                        <p:message for="userSobreNameCad"/>

                        <h:outputLabel value="#{msg.login}:" id="labellogin" title="#{msg.titleLoginCadUser}"/>
                        <p:inputText value="#{admUsuario.usuarioCadastro.login}" id="userloginCad" required="true"
                                     requiredMessage="#{msg.campoObrigatorio}" title="#{msg.titleLoginCadUser}" label="#{msg.login}"
                                     maxlength="10" size="50">
                            <f:validateLength minimum="5" maximum="10"/>
                        </p:inputText>
                        <p:message for="userloginCad"/>

                        <h:outputLabel value="#{msg.email}:" id="labelemail" title="#{msg.titleEmailCadUser}"/>
                        <p:inputText value="#{admUsuario.usuarioCadastro.email}" id="useremailCad" required="true"
                                     requiredMessage="#{msg.campoObrigatorio}" title="#{msg.titleEmailCadUser}" label="#{msg.email}"
                                     maxlength="100" size="50">
                            <f:validateLength minimum="3" maximum="100"/>
                            <f:validator validatorId="emailValidador"/>
                        </p:inputText>
                        <p:message for="useremailCad"/>

                        <h:outputLabel value="#{msg.nivelAcesso}:" id="labelroles" title="#{msg.titleRolesCadUser}"/>
                        <h:selectManyCheckbox value="#{admUsuario.listRoles}" id="rolesList" required="true" label="#{msg.nivelAcesso}" styleClass="bvb-font"
                                              requiredMessage="#{msg.campoObrigatorio}" title="#{msg.titleRolesCadUser}" layout="pageDirection">
                            <f:selectItems value="#{admUsuario.roles}"/>
                            <f:converter converterId="genericoConverter"/>
                        </h:selectManyCheckbox>
                        <p:message for="rolesList"/>

                        <h:outputText value=""/>
                        <h:panelGroup id="buttonGroup">
                            <p:commandLink actionListener="#{admUsuario.salvarUsuario}" update="conteudoCentralGroup,messages"
                                           title="#{msg.titleButtonSalvarCadUser}" id="buttonSalvar" styleClass="ui-button_link">
                                <h:graphicImage library="img" name="bt_salvar.png"/>
                            </p:commandLink>
                            <p:spacer width="2" height="2"/>
                            <h:commandButton  title="#{msg.titleButtonCleanCadUser}" immediate="true" image="/resources/img/bt_limpar_red.png"
                                              id="buttonLimpar"  actionListener="#{admUsuario.init}">
                                <f:ajax render="cadUserForm"></f:ajax>
                            </h:commandButton>
                        </h:panelGroup>
                    </h:panelGrid>
                </h:form>
            </h:panelGroup>

            <p:spacer width="100%" height="15px;"/>

            <h:panelGroup id="tableGroupUserCads">
                <h:form id="tableCadUserForm">
                    <p:dataTable value="#{admUsuario.modelUsuarios}" var="usuario" id="tableUser" rows="5" paginator="true"
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks}
                                 {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"  styleClass="bvb-font"
                                 rowsPerPageTemplate="5,10,15" emptyMessage="#{msg.semRegistrosEcontrados}">
                        <f:facet name="header">
                            <h:outputText value="#{msg.richTableUsuarios}"/>
                        </f:facet>

                        <p:column id="col1" filterBy="#{usuario.nomeSobreNome}" headerText="Model" footerText="contains"
                                  filterMatchMode="contains">
                            <f:facet name="header">
                                <h:outputText value="#{msg.richColumnNome}"/>
                            </f:facet>
                            <h:outputText value="#{usuario.nomeSobreNome}"/>
                        </p:column>

                        <p:column id="col2">
                            <f:facet name="header">
                                <h:outputText value="#{msg.richColumnLogin}"/>
                            </f:facet>
                            <h:outputText value="#{usuario.login}"/>
                        </p:column>

                        <p:column id="col4" sortBy="#{usuario.maxRole.papel}">
                            <f:facet name="header">
                                <h:outputText value="#{msg.richColumnPapel}"/>
                            </f:facet>
                            <h:outputText value="#{usuario.maxRole.papel}"/>
                        </p:column>

                        <p:column id="editarUsuario" styleClass="center">
                            <f:facet name="header">
                                <h:outputText value="#{msg.richColumnEditar}"/>
                            </f:facet>
                            <p:commandLink update="conteudoCentralGroup,messages"
                                           title="#{msg.titleButtonSalvarCadUser}" id="buttonEditar" styleClass="ui-button_link">
                                <h:graphicImage library="img" name="user_edit_24.png"/>
                                <f:setPropertyActionListener value="#{usuario}" target="#{admUsuario.usuarioCadastro}" />  
                                <f:setPropertyActionListener value="editar" target="#{admUsuario.actionEvent}" />  
                            </p:commandLink>
                        </p:column>

                        <p:column id="senhaEdit" styleClass="center">
                            <f:facet name="header">
                                <h:outputText value="#{msg.richColumnResetSenha}"/>
                            </f:facet>
                            <p:commandLink update="conteudoCentralGroup,messages"
                                           title="#{msg.titleButtonResetSenha}" id="buttonSenha" styleClass="ui-button_link">
                                <h:graphicImage library="img" name="loginLock_24.png"/>
                                <f:setPropertyActionListener value="#{usuario}" target="#{admUsuario.usuarioCadastro}" />  
                                <f:setPropertyActionListener value="senha" target="#{admUsuario.actionEvent}" />  
                            </p:commandLink>
                        </p:column>

                        <p:column id="blockUsuario" styleClass="center">
                            <f:facet name="header">
                                <h:outputText value="#{msg.richColumnStatus}"/>
                            </f:facet>
                            <p:commandLink update="conteudoCentralGroup,messages" title="#{msg.titleButtonSalvarCadUser}" 
                                           id="buttonBlock" styleClass="ui-button_link">
                                <h:graphicImage library="img" name="open_24.png" rendered="#{!usuario.bloqueado}"/>
                                <h:graphicImage library="img" name="lock_24.png" rendered="#{usuario.bloqueado}"/>
                                <f:setPropertyActionListener value="#{usuario}" target="#{admUsuario.usuarioCadastro}" />  
                                <f:setPropertyActionListener value="status" target="#{admUsuario.actionEvent}" />  
                            </p:commandLink>
                            
                        </p:column>
                    </p:dataTable>
                </h:form>
            </h:panelGroup>
        </h:panelGrid>
    </f:subview>
</ui:composition>